var golbal = {};
/**
 * 密码重置
 */
golbal.rec = function(obj, array) {
	if (array.length == 0) {
		layer.alert('请选择用户', {
			icon : 0,
			skin : 'layer-ext-moon',
		});
		return false;
	} else {
		layer.confirm('是否执行此操作？', {
			icon : 3,
			btn : [ '确认', '取消' ]
		// 按钮
		}, function(index) {
			layer.close(index);
			$.ajax({
				url : $(obj).attr("rec-url"),
				data : array.join("&"),
				type : "post",
				dataType : "json",
				success : function(result) {
					if (result.success == 1) {
						icon = 1;
					} else {
						icon = 2;
					}
					layer.alert(result.msg, {
						icon : icon,
						skin : "layer-ext-moon",
					}, function(index) {
						layer.close(index);
						$(".easyui-datagrid").datagrid("reload");
						$(".easyui-treegrid").treegrid("reload");
					});
				},
				error : function(x, s, error) {
					layer.alert("服务器响应出错：" + error + ";错误代码：" + x.status, {
						icon : 2,
						skin : "layer-ext-moon",
					});
				}

			});
		}, function(index) {
			layer.close(index);
		});
	}
	return false;
};
golbal.del = function(obj,action, msg,datagrid) {
	var newMsg = (msg || "确定删除？");
	layer.confirm(newMsg, {
		icon : 3,
		btn : [ '确认', '取消' ]
	// 按钮
	}, function(index) {
		layer.close(index);
		golbal.progress();
		$.ajax({
			url :action,
			type : "post",
			dataType : "json",
			success : function(result) {
				if (result.success == 1) {
					icon = 1;
				} else {
					icon = result.o != undefined ? result.o : 2;
				}
				$.messager.progress("close");
				layer.alert(result.msg || '删除成功！', {
					icon : icon,
					skin : "layer-ext-moon",
				}, function(index) {
					layer.close(index);
					if ($(obj).attr("page-reload")) {
						window.location.reload(true);
					} else {
						$(".easyui-datagrid").datagrid("reload");
						$(".easyui-treegrid").treegrid("reload");
					}
				});
			},
			error : function(x, s, error) {
				$.messager.progress("close");
				datagrid.datagrid("clearSelections");
				layer.alert("服务器响应出错：" + error + ";错误代码：" + x.status, {
					icon : 2,
					skin : "layer-ext-moon",
				});
			}
		});
	});
	return false;
}
///**
// * 全局删除函数
// * 
// * @author 杨海
// * @param obj
// *            点击提交的按钮本身 提交按钮加一个自定义属性del-url,此属性为删除请求的地址
// * 
// */
//golbal.del = function(obj) {
//	layer.confirm('是否执行此操作？', {
//		icon : 3,
//		btn : [ '确认', '取消' ]
//	// 按钮
//	}, function(index) {
//		layer.close(index);
//		golbal.progress();
//		$.ajax({
//			url : $(obj).attr("del-url"),
//			type : "post",
//			success : function(result) {
//				if (result.success == 1) {
//					icon = 1;
//				} else {
//					icon = result.o != undefined ? result.o : 2;
//				}
//				$.messager.progress("close");
//				layer.alert(result.msg || '删除成功', {
//					icon : icon,
//					skin : "layer-ext-moon",
//				}, function(index) {
//					layer.close(index);
//					if ($(obj).attr("page-reload")) {
//						window.location.reload(true);
//					} else {
//						$(".easyui-datagrid").datagrid("reload");
//						$(".easyui-treegrid").treegrid("reload");
//					}
//				});
//			},
//			error : function(x, s, error) {
//				$.messager.progress("close");
//				layer.alert("服务器响应出错：" + error + ";错误代码：" + x.status, {
//					icon : 2,
//					skin : "layer-ext-moon",
//				});
//			}
//		});
//	});
//	return false;
//}
//golbal.del = function(obj, msg) {
//	var newMsg = (msg || "确定删除？");
//	layer.confirm(newMsg, {
//		icon : 3,
//		btn : [ '确认', '取消' ]
//	// 按钮
//	}, function(index) {
//		layer.close(index);
//		golbal.progress();
//		$.ajax({
//			url : $(obj).attr("del-url"),
//			type : "post",
//			dataType : "json",
//			success : function(result) {
//				if (result.success == 1) {
//					icon = 1;
//				} else {
//					icon = result.o != undefined ? result.o : 2;
//				}
//				$.messager.progress("close");
//				layer.alert(result.msg || '删除成功！', {
//					icon : icon,
//					skin : "layer-ext-moon",
//				}, function(index) {
//					layer.close(index);
//					if ($(obj).attr("page-reload")) {
//						window.location.reload(true);
//					} else {
//						$(".easyui-datagrid").datagrid("reload");
//						$(".easyui-treegrid").treegrid("reload");
//					}
//				});
//			},
//			error : function(x, s, error) {
//				$.messager.progress("close");
//				layer.alert("服务器响应出错：" + error + ";错误代码：" + x.status, {
//					icon : 2,
//					skin : "layer-ext-moon",
//				});
//			}
//		});
//	});
//	return false;
//}
///**
// * 全局函数
// * 
// * @author 杨海
// * @param obj
// *            点击提交的按钮本身 提交按钮加一个自定义属性del-url,此属性为删除请求的地址
// * 
// */
//golbal.delmutil = function(obj, array) {
//	var backUrl = $(obj).attr("back-url");
//	if (array.length == 0) {
//		layer.alert('请选择需要删除的数据', {
//			icon : 0,
//			skin : 'layer-ext-moon',
//		});
//		return false;
//	} else {
//		layer.confirm("确定删除选中项？", {
//			icon : 3,
//			btn : [ '确认', '取消' ]
//		// 按钮
//		}, function(index) {
//			layer.close(index);
//			golbal.progress();
//			$.ajax({
//				url : $(obj).attr("del-url"),
//				type : "post",
//				data : array.join("&"),
//				success : function(result) {
//					if (result.success == 1) {
//						icon = 1;
//					} else {
//						icon = 2;
//					}
//					$.messager.progress("close");
//					layer.alert(result.msg || '删除成功！', {
//						icon : icon,
//						skin : "layer-ext-moon",
//					}, function(index) {
//						layer.close(index);
//						if ($(obj).attr("page-reload")) {
//							window.location.reload(true);
//						} else {
//							$(".easyui-datagrid").datagrid("reload");
//							$(".easyui-treegrid").treegrid("reload");
//						}
//					});
//				},
//				error : function(x, s, error) {
//					$.messager.progress("close");
//					layer.alert("服务器响应出错：" + error + ";错误代码：" + x.status, {
//						icon : 2,
//						skin : "layer-ext-moon",
//					});
//				}
//			});
//		});
//		return false;
//	}
//};
//golbal.delmutil = function(obj, array, msg) {
//	var newMsg = msg || "确定删除选中项？";
//	var backUrl = $(obj).attr("back-url");
//	if (array.length == 0) {
//		layer.alert('请选择需要删除的数据', {
//			icon : 0,
//			skin : 'layer-ext-moon',
//		});
//		return false;
//	} else {
//		layer.confirm(newMsg, {
//			icon : 3,
//			btn : [ '确认', '取消' ]
//		// 按钮
//		}, function(index) {
//			layer.close(index);
//			golbal.progress();
//			$.ajax({
//				url : $(obj).attr("del-url"),
//				type : "post",
//				data : array.join("&"),
//				success : function(result) {
//					if (result.success == 1) {
//						icon = 1;
//					} else {
//						icon = 2;
//					}
//					$.messager.progress("close");
//					layer.alert(msg.msg || "删除成功！", {
//						icon : icon,
//						skin : "layer-ext-moon",
//					}, function(index) {
//						layer.close(index);
//						if ($(obj).attr("page-reload")) {
//							window.location.reload(true);
//						} else {
//							$(".easyui-datagrid").datagrid("reload");
//							$(".easyui-treegrid").treegrid("reload");
//						}
//					});
//				},
//				error : function(x, s, error) {
//					$.messager.progress("close");
//					layer.alert("服务器响应出错：" + error + ";错误代码：" + x.status, {
//						icon : 2,
//						skin : "layer-ext-moon",
//					});
//				}
//			});
//		});
//		return false;
//	}
//};
/**
 * 全局添加函数
 * 
 * @author 杨海
 * @param obj
 *            点击提交的按钮本身
 *            该函数需要form包含了提交按钮；form的action也为修改提交保存的地址；提交按钮加一个自定义属性back-url,此属性为保存成功之后返回的界面
 * 
 */
golbal.add = function(obj, queryParams) {
	var $form = $(obj).parents("form");
	var $url = $form.attr("action");
	var $backUrl = $(obj).attr("back-url");
	var $clearForm = $(obj).attr("clear-form");
	if (!$form.form("validate")) {// 验证没通过，返回
		return false;
	}
	if (queryParams!=null&&!queryParams) {
		return false;
	} else if (queryParams == null) {
		queryParams = "";
	}
	golbal.progress();
	$form.ajaxSubmit({
		url : $url,
		type : "post",
		datType : 'JSON',
		data : queryParams,
		success : function(msg) {
			$.messager.progress("close");
			if (msg.success == 1) {
				layer.alert(msg.msg || "添加成功！", {
					icon : 1,
					skin : "layer-ext-moon",
				}, function(index) {
					layer.close(index);
					closeDialog(obj);
					$(".easyui-datagrid").datagrid("reload");
					$(".easyui-treegrid").treegrid("reload");
				});
			} else {
				layer.alert("添加失败！请稍候重试：" + (msg.msg || ""), {
					icon : 2,
					skin : "layer-ext-moon",
				}, function(index) {
					layer.close(index);
					if (msg.o != undefined && $backUrl) {
						window.location.href = $backUrl;
					}
				});
			}
		},
		error : function(x, s, error) {
			$.messager.progress("close");
			layer.alert("添加失败！服务器出错：" + error + ";错误代码：" + x.status, {
				icon : 2,
				skin : "layer-ext-moon",
			});
		}
	});
	return false;
}
/**
 * 全局修改函数
 * 
 * @author 杨海
 * @param obj
 *            点击提交的按钮本身
 *            该函数需要form包含了提交按钮；form的action也为修改提交保存的地址；提交按钮加一个自定义属性back-url,此属性为修改成功之后返回的界面
 * 
 */
golbal.update = function(obj, queryParams) {
	var $form = $(obj).parents("form");
	var $url = $form.attr("action");
	var $backUrl = $(obj).attr("back-url");
	if (!$form.form("validate")) {// 验证没通过，返回
		return;
	}
	if (queryParams!=null&&!queryParams) {
		return false;
	} else if (queryParams == null) {
		queryParams = "";
	}
	golbal.progress();
	$form.ajaxSubmit({
		url : $url,
		type : "post",
		data : queryParams,
		success : function(msg) {
			$.messager.progress("close");
			if (msg.success == 1) {
				layer.alert(msg.msg || "修改成功！", {
					icon : 1
				}, function(index) {
					layer.close(index);
					if ($backUrl) {
						window.location.href = $backUrl;
					} else {
						closeDialog(obj);
						$(".easyui-datagrid").datagrid("reload");
						$(".easyui-treegrid").treegrid("reload");
					}
				});
			} else {
				layer.alert(msg.msg || "修改失败", {
					icon : 2,
					skin : "layer-ext-moon",
				});
			}
		},
		error : function(x,s,error) {
			$.messager.progress("close")
			layer.alert("修改失败！服务器出错：" + error + ";错误代码：" + x.status, {
				icon : 2,
				skin : "layer-ext-moon",
			});
		}
	});
	return false;
};
golbal.progress = function(message) {
	if (!message) {
		message = "正在提交...";
	}
	$.messager.progress({
		title : "提示",
		msg : "",
		text : message,
		interval : 500
	});
};
/**
 * datagrid搜索功能
 */
golbal.search = function(obj) {
	var $form = $(obj).parents("form.search-form");
	var dataGridId = $form.attr("data-grid-object") || ".easyui-datagrid";
	var $dataGridObj = $(dataGridId);
	var jsonOfFormSerialize = $form.serializeObject();
	if ($dataGridObj.hasClass("easyui-datagrid")) { // datagird
		$dataGridObj.datagrid('load',{"searchParams":JSON.stringify(jsonOfFormSerialize)});
	} else if ($dataGridObj.hasClass("easyui-treegrid")) { // treegrid
		$dataGridObj.treegrid('load', jsonOfFormSerialize);
	}

}
/**
 * datagrid搜索功能
 */
golbal.clearSearch = function(obj) {
	var $form = $(obj).parents("form.search-form");
	$form.form("clear");
	golbal.search($(obj));
}
/**
 * 报表的导出Excel
 */
golbal.exportExcel = function(obj) {
	var form = $(obj).attr("form_id");
	var $url = $(obj).attr("export_url");
	var jsonOfFormSerialize = $(form).serializeString();
	window.parent.location.href = $url + jsonOfFormSerialize;
}
/**
 * 
 * @param obj
 * @param datagrid
 * @param params
 */
function showWindow(obj,datagrid,param,type,dataGridType) {
	var url;
	if(arguments.length == 1){
		 url = $(obj).attr("data-url");
	}else if(arguments.length == 2||arguments.length == 3){
		layer.alert("参数错误", {
			icon : 2,
			skin : "layer-ext-moon",
		});
		return;
	}else{
		var $grid=$(datagrid);
		var $rows;
		 if(dataGridType=='tg'){
			$rows= $grid.treegrid('getSelections');
		}else {
			$rows= $grid.datagrid('getSelections');
		}
		if($rows==null||$rows.length==0){
			layer.alert("请选择需要操作的数据", {
				icon : 2,
				skin : "layer-ext-moon",
			});
			 return false;
		}else{
			if(type=='edit'){
				url=$(obj).attr("data-url")+"/"+$rows[0][param];
			}else if(type=='del'){
				var params=new Array();
				$.each($rows,function(i,item){
					params.push(item[param]);
				});
				url=$(obj).attr("data-url")+"?id="+params.join("&id=");
                golbal.del(obj,url,"",$grid);
                return false;
			}else{
				layer.alert("参数错误", {
					icon : 2,
					skin : "layer-ext-moon",
				});
				 return false;
			}
		}
	}
	var titleName = $(obj).attr("title");
	var _width = ($(obj).attr("data-win-width") == undefined) ? "96%" : $(obj).attr(
			"data-win-width");
	var _height = ($(obj).attr("data-win-height") == undefined) ? "96%" : $(obj)
			.attr("data-win-height");
	var _customerClass = ($(obj).attr("customer-id") == undefined) ? "customer-id"
			: $(obj).attr("customer-id");
	$("<div/>").addClass("customer-dialog " + _customerClass).window({
		width : _width,
		height : _height,
		modal : true,
		minimizable : false,
		resizable : false,
		title : "<i class=\"iconfont icon-windows\"></i>" + titleName,
		border : false,
		onClose : function() {
			$(this).window('destroy');
		},
		href : url
	});
	return false;
}
/* 重置combotree选项 */
function reset_combotree() {
	$(".easyui-combotree").combotree("reset");
}
function closeDialog(obj) {
	var $obj = $(obj).parents("div.customer-dialog");
	if ($obj.length != 0) {
		$obj.window("destroy");
	}

}
/**
 * 给Arry添加remove方法
 */
(function() {
	Array.prototype.remove = function(dx) {
		if (isNaN(dx) || dx > this.length) {
			return false;
		}
		for (var i = 0, n = 0; i < this.length; i++) {
			if (this[i] != this[dx]) {
				this[n++] = this[i];
			}
		}
		this.length -= 1;
	};
}());
/**
 * 网络判断
 * 
 * @returns {Boolean}
 */
function hasOnLine() {
	if (navigator.onLine)
		return true;
	return false;
}
/**
 * 窗口弹出
 * 
 * @param url
 *            地址
 * @param title
 *            标题
 * @param width
 *            宽度
 * @param height
 *            高度
 * @returns
 */
var winOpen = function(url, title, width, height) {
	var top = window.screen.height / 2 - height / 2 - 30;
	var left = window.screen.width / 2 - width / 2 - 20;
	var winObj = window.open(url, title, 'width=' + width + ',height=' + height
			+ ',scrollbars=yes, resizable=no,status=no,left=' + left + ',top='
			+ top);
	return winObj;
}

/**
 * 文件上传
 * 
 * @param model
 *            需要保存的文件夹名称
 * @param callback
 *            文件上传成功之后的回调函数
 */
golbal.upload = function(model, callback, uri) {
	if (model == undefined || model == '') {
		model = "document"
	}
	if (uri == undefined || uri == '') {
		uri = "fileupload";
	}
	var content = "<div style=\"padding:40px 40px 0px 40px;text-align: center;\"><input type=\"file\" name=\"file\" id=\"file\" size=\"19\"></div><div id=\"queue\"></div>";
	var $dialog = $("<div/>").addClass("customer-upload-dialog").dialog(
			{
				onOpen : function() {
					$("#file").uploadify(
							{
								"swf" : _ctxResource + "/images/uploadify.swf",
								"uploader" : _ctx + "/" + uri + ";jsessionid="
										+ _jsessionid + "?model=" + model,
								"width" : 120,
								"height" : 64,
								"onUploadSuccess" : function(file, data,
										response) {
									var msg = eval('(' + data + ')');
									if (msg.success == 1) {
										$.messager.alert("消息提示", msg.msg,
												"success", function() {
													$dialog.dialog("destroy");
													callback.call(this, msg.o);
												});
									} else {
										$.messager.alert("消息提示", msg.msg,
												"error");
									}
								},
								"onUploadError" : function(file, errorCode,
										errorMsg, errorString) {
									$.messager.alert("消息提示", "文件：" + file.name
											+ " 上传失败，原因: " + errorString,
											"error");
								},
								"buttonText" : "选择文件",
								"buttonClass" : "btn btn-primary",
								"fileObjName" : "file",
								"fileTypeDesc" : "选择文件",
								"queueID" : "queue",
								"removeTimeout" : 0,
								"scriptAccess" : "always",
								"simUploadLimit" : 10,
								"multi" : true
							});
				},
				content : content,
				onClose : function() {
					$(this).dialog('destroy');
				},
				height : 220,
				width : 220,
				title : "文件上传",
				modal : true,
				minimizable : false,
				resizable : false
			});
}
/**
 * 绑定事件函数
 * 
 * @param oTarget
 *            目标组件
 * @param sEventType
 *            事件
 * @param fnHandler
 *            回调函数
 */
function addEventHandler(oTarget, sEventType, fnHandler) {
	if (oTarget.addEventListener) {
		oTarget.addEventListener(sEventType, fnHandler, false);
	} else if (oTarget.attachEvent) {
		oTarget.attachEvent("on" + sEventType, fnHandler);
	} else {
		oTarget["on" + sEventType] = fnHandler;
	}
};
/**
 * 生成uuid
 * 
 * @param len
 * @param radix
 * @returns
 */
function uuid(len, radix) {
	var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
			.split('');
	var uuid = [], i;
	radix = radix || chars.length;
	if (len) {
		for (i = 0; i < len; i++)
			uuid[i] = chars[0 | Math.random() * radix];
	} else {
		var r;
		uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
		uuid[14] = '4';
		for (i = 0; i < 36; i++) {
			if (!uuid[i]) {
				r = 0 | Math.random() * 16;
				uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
			}
		}
	}
	return uuid.join('');
}
function isNumber(val) {
	return typeof val === 'number' && !isNaN(val)
}
Date.prototype.format = function(format) {
	var date = {
		"M+" : this.getMonth() + 1,
		"d+" : this.getDate(),
		"h+" : this.getHours(),
		"m+" : this.getMinutes(),
		"s+" : this.getSeconds(),
		"q+" : Math.floor((this.getMonth() + 3) / 3),
		"S+" : this.getMilliseconds()
	};
	if (/(y+)/i.test(format)) {
		format = format.replace(RegExp.$1, (this.getFullYear() + '')
				.substr(4 - RegExp.$1.length));
	}
	for ( var k in date) {
		if (new RegExp("(" + k + ")").test(format)) {
			format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k]
					: ("00" + date[k]).substr(("" + date[k]).length));
		}
	}
	return format;
}
